<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>ESP8266 ILI9341 display support code with printf sources, wire-frame viewer and custom fonts: web/web.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">ESP8266 ILI9341 display support code with printf sources, wire-frame viewer and custom fonts
   &#160;<span id="projectnumber">1.0</span>
   </div>
   <div id="projectbrief">ESP8266ILI9341DisplayProject</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_562abdcd8625d4bf7bad2fe6fe01354c.html">web</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">web.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Small web server for esp8266.  
<a href="#details">More...</a></p>

<p><a href="web_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structhinfo__t.html">hinfo_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmem__t.html">mem_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structheader__t.html">header_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmime__t.html">mime_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrwbuf__t.html">rwbuf_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a053b7859476cc9867ec62c49e68d3fa1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a053b7859476cc9867ec62c49e68d3fa1">MAX_CONNECTIONS</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:a053b7859476cc9867ec62c49e68d3fa1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51a214aeaf13aa7f3eac284e5a4fc93e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a51a214aeaf13aa7f3eac284e5a4fc93e">IO_MAX</a>&#160;&#160;&#160;512</td></tr>
<tr class="separator:a51a214aeaf13aa7f3eac284e5a4fc93e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a6dae30cd245bde804cf3e2c09e39a4b6"><td class="memItemLeft" align="right" valign="top">typedef struct espconn&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a6dae30cd245bde804cf3e2c09e39a4b6">espconn_t</a></td></tr>
<tr class="separator:a6dae30cd245bde804cf3e2c09e39a4b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:abc6126af1d45847bc59afa0aa3216b04"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br />
&#160;&#160;<a class="el" href="web_8h.html#abc6126af1d45847bc59afa0aa3216b04a6b4dfa1db88da421c74c30dc94c3ce53">TOKEN_GET</a>, 
<a class="el" href="web_8h.html#abc6126af1d45847bc59afa0aa3216b04a2a1292bc924f34d6d69a7b71501ae73f">TOKEN_PUT</a>, 
<a class="el" href="web_8h.html#abc6126af1d45847bc59afa0aa3216b04a4cb258960bebf97073876d09836f1618">TOKEN_POST</a>, 
<a class="el" href="web_8h.html#abc6126af1d45847bc59afa0aa3216b04a7a543c7cf1ac077230c499a41c3a8a94">TOKEN_HEAD</a>, 
<br />
&#160;&#160;<a class="el" href="web_8h.html#abc6126af1d45847bc59afa0aa3216b04a04d43499e4bc7c9f971f7a660d098ff1">TOKEN_HOST</a>, 
<a class="el" href="web_8h.html#abc6126af1d45847bc59afa0aa3216b04a4e115a8a34594af0f253e8472cffe673">TOKEN_USER_AGENT</a>, 
<a class="el" href="web_8h.html#abc6126af1d45847bc59afa0aa3216b04ae47eb1ae54089e857fd7795282a7ae1d">TOKEN_HTTPS</a>, 
<a class="el" href="web_8h.html#abc6126af1d45847bc59afa0aa3216b04a37110324f9064d3a7e41029d572141d0">TOKEN_DNT</a>, 
<br />
&#160;&#160;<a class="el" href="web_8h.html#abc6126af1d45847bc59afa0aa3216b04af8b41aa43b046daa7c0ada29d27b7cdb">TOKEN_ACCEPT</a>, 
<a class="el" href="web_8h.html#abc6126af1d45847bc59afa0aa3216b04a3fdcc37f74cb2179b65913891e1f02d8">TOKEN_ACCEPT_LANGUAGE</a>, 
<a class="el" href="web_8h.html#abc6126af1d45847bc59afa0aa3216b04add40d0810a662bffc6a5d437e2a86c10">TOKEN_ACCEPT_ENCODING</a>, 
<a class="el" href="web_8h.html#abc6126af1d45847bc59afa0aa3216b04ad862c732a351f70da32231c9f4298d05">TOKEN_CONNECTION</a>, 
<br />
&#160;&#160;<a class="el" href="web_8h.html#abc6126af1d45847bc59afa0aa3216b04ab9bf3f747c7169a74f228b4f173c2bf4">TOKEN_REFERER</a>, 
<a class="el" href="web_8h.html#abc6126af1d45847bc59afa0aa3216b04a727fe5423c611ba2fac22b301c60e962">TOKEN_CONTENT_LENGTH</a>, 
<a class="el" href="web_8h.html#abc6126af1d45847bc59afa0aa3216b04ad871a413f306c0544fd283658f046805">TOKEN_CONTENT_TYPE</a>, 
<a class="el" href="web_8h.html#abc6126af1d45847bc59afa0aa3216b04a991253922f53b4456f895f846e82b946">TOKEN_CACHE_CONTROL</a>
<br />
 }</td></tr>
<tr class="separator:abc6126af1d45847bc59afa0aa3216b04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc29c2ff13d900c2f185ee95427fb06c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br />
&#160;&#160;<a class="el" href="web_8h.html#adc29c2ff13d900c2f185ee95427fb06ca7e4a42e3b6dd63708c64cf3db6f69566">STATUS_OK</a> =200, 
<a class="el" href="web_8h.html#adc29c2ff13d900c2f185ee95427fb06ca75c8bace79d5c58050c2d93fd9de3c00">STATUS_CREATED</a> =201, 
<a class="el" href="web_8h.html#adc29c2ff13d900c2f185ee95427fb06ca544ef68512445722eea8ab61cde6c830">STATUS_ACCEPTED</a> =202, 
<a class="el" href="web_8h.html#adc29c2ff13d900c2f185ee95427fb06ca71bad6dd3a7a5c8299f3e3c80b45dc14">STATUS_NO_CONTENT</a> =204, 
<br />
&#160;&#160;<a class="el" href="web_8h.html#adc29c2ff13d900c2f185ee95427fb06ca663e14e47f325e0a39cd97b9a3ea6fb9">STATUS_MV_PERM</a> =301, 
<a class="el" href="web_8h.html#adc29c2ff13d900c2f185ee95427fb06cad39f6bf4951a299bdb3ce9b8d26e253d">STATUS_MV_TEMP</a> =302, 
<a class="el" href="web_8h.html#adc29c2ff13d900c2f185ee95427fb06ca241c5e2099d4e3033fb286faab004c5c">STATUS_NOT_MODIF</a> =304, 
<a class="el" href="web_8h.html#adc29c2ff13d900c2f185ee95427fb06ca1879c295e29e4b52c2012c014cdc7f7a">STATUS_BAD_REQ</a> =400, 
<br />
&#160;&#160;<a class="el" href="web_8h.html#adc29c2ff13d900c2f185ee95427fb06cab798bc2adfffcedc038bc7147872dedc">STATUS_UNAUTH</a> =401, 
<a class="el" href="web_8h.html#adc29c2ff13d900c2f185ee95427fb06caf1a1b171197b10ee86c06ae98edbaf5e">STATUS_FORBIDDEN</a> =403, 
<a class="el" href="web_8h.html#adc29c2ff13d900c2f185ee95427fb06ca5beadd7da049edbb6bbe9a9d50973ac8">STATUS_NOT_FOUND</a> =404, 
<a class="el" href="web_8h.html#adc29c2ff13d900c2f185ee95427fb06caa4895f748a5cf4fbfc084fcc98bba90e">STATUS_INT_SERR</a> =500, 
<br />
&#160;&#160;<a class="el" href="web_8h.html#adc29c2ff13d900c2f185ee95427fb06ca70758246ac128854293bb3c9071a6b56">STATUS_NOT_IMPL</a> =501, 
<a class="el" href="web_8h.html#adc29c2ff13d900c2f185ee95427fb06ca11d58f99340eb2b9510382096f7019c5">STATUS_BAD_GATEWAY</a> =502, 
<a class="el" href="web_8h.html#adc29c2ff13d900c2f185ee95427fb06ca5426ee498d80d1ca30f1b81f86c39c31">STATUS_SERV_UNAVAIL</a> =503
<br />
 }</td></tr>
<tr class="separator:adc29c2ff13d900c2f185ee95427fb06c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61dadd085c1777f559549e05962b2c9e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br />
&#160;&#160;<a class="el" href="web_8h.html#a61dadd085c1777f559549e05962b2c9ea90b1e6aa374cea27cc6fb55c5feba5c6">PTYPE_TEXT</a>, 
<a class="el" href="web_8h.html#a61dadd085c1777f559549e05962b2c9ea4bd960e514f0585643742b8bd4b77f3b">PTYPE_HTML</a>, 
<a class="el" href="web_8h.html#a61dadd085c1777f559549e05962b2c9ea30057776e71c48725f93b464b45c9a21">PTYPE_PDF</a>, 
<a class="el" href="web_8h.html#a61dadd085c1777f559549e05962b2c9ea319eff9f0f2a8e6f74c5a319fc1cb4e4">PTYPE_CSS</a>, 
<br />
&#160;&#160;<a class="el" href="web_8h.html#a61dadd085c1777f559549e05962b2c9ea96590ec99e2f5ce52c16218c19441c77">PTYPE_CGI</a>, 
<a class="el" href="web_8h.html#a61dadd085c1777f559549e05962b2c9ea68ab53191252e14d5f4b4025b956cadf">PTYPE_JS</a>, 
<a class="el" href="web_8h.html#a61dadd085c1777f559549e05962b2c9eae0868088fd938478331ae365e481a2d3">PTYPE_XML</a>, 
<a class="el" href="web_8h.html#a61dadd085c1777f559549e05962b2c9eacbda84af249fa4ef414b6b5c32eec998">PTYPE_ICO</a>, 
<br />
&#160;&#160;<a class="el" href="web_8h.html#a61dadd085c1777f559549e05962b2c9ea30f126f9623d527070097095a12e69d6">PTYPE_GIF</a>, 
<a class="el" href="web_8h.html#a61dadd085c1777f559549e05962b2c9eaabae39c4d39e7574d9e0459d6ada9675">PTYPE_JPEG</a>, 
<a class="el" href="web_8h.html#a61dadd085c1777f559549e05962b2c9eae45f3c9fce9b5c96bf27fb291662b0cb">PTYPE_MPEG</a>, 
<a class="el" href="web_8h.html#a61dadd085c1777f559549e05962b2c9eafb13489a2aca6e1485d8f1b36aab9bd5">PTYPE_FLASH</a>, 
<br />
&#160;&#160;<a class="el" href="web_8h.html#a61dadd085c1777f559549e05962b2c9ea8a75b468753c30e47935e8db26c91680">PTYPE_ERR</a>
<br />
 }</td></tr>
<tr class="separator:a61dadd085c1777f559549e05962b2c9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a32080fe9d866898d9fb3dce10079b1ff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a32080fe9d866898d9fb3dce10079b1ff">web_sep</a> (void)</td></tr>
<tr class="memdesc:a32080fe9d866898d9fb3dce10079b1ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">printer seperator  <a href="#a32080fe9d866898d9fb3dce10079b1ff">More...</a><br /></td></tr>
<tr class="separator:a32080fe9d866898d9fb3dce10079b1ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b59ca0b6eea0b246eb56ae2b37ee2d8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a6b59ca0b6eea0b246eb56ae2b37ee2d8">wait_send</a> (<a class="el" href="structrwbuf__t.html">rwbuf_t</a> *p)</td></tr>
<tr class="memdesc:a6b59ca0b6eea0b246eb56ae2b37ee2d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait for buffer to send for this connection If write_buffer sending flag is set then wait for it to clear.  <a href="#a6b59ca0b6eea0b246eb56ae2b37ee2d8">More...</a><br /></td></tr>
<tr class="separator:a6b59ca0b6eea0b246eb56ae2b37ee2d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab32eaeba7482e80dde268638c1514a6d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#ab32eaeba7482e80dde268638c1514a6d">write_buffer</a> (<a class="el" href="structrwbuf__t.html">rwbuf_t</a> *p)</td></tr>
<tr class="memdesc:ab32eaeba7482e80dde268638c1514a6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Socket write buffer for this connection We wait for previous send to complete - then send any new data We do not wait for new data to finish sending - you use flush for that.  <a href="#ab32eaeba7482e80dde268638c1514a6d">More...</a><br /></td></tr>
<tr class="separator:ab32eaeba7482e80dde268638c1514a6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e0970f0d980f87fb5524a757f96fa84"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a5e0970f0d980f87fb5524a757f96fa84">write_flush</a> (<a class="el" href="structrwbuf__t.html">rwbuf_t</a> *p)</td></tr>
<tr class="memdesc:a5e0970f0d980f87fb5524a757f96fa84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write all outstanding data and wait for it to send.  <a href="#a5e0970f0d980f87fb5524a757f96fa84">More...</a><br /></td></tr>
<tr class="separator:a5e0970f0d980f87fb5524a757f96fa84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50c911d56af7c50bc045cffb983d76f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a50c911d56af7c50bc045cffb983d76f0">write_byte</a> (<a class="el" href="structrwbuf__t.html">rwbuf_t</a> *p, int c)</td></tr>
<tr class="memdesc:a50c911d56af7c50bc045cffb983d76f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a byte (buffered) using the <a class="el" href="structrwbuf__t.html">rwbuf_t</a> socket buffers for this connection If the buffers are full the socket is written using write_flush.  <a href="#a50c911d56af7c50bc045cffb983d76f0">More...</a><br /></td></tr>
<tr class="separator:a50c911d56af7c50bc045cffb983d76f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaaac061db0c7646d5b6c8bdfe3089ae7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#aaaac061db0c7646d5b6c8bdfe3089ae7">led_on</a> (int led)</td></tr>
<tr class="separator:aaaac061db0c7646d5b6c8bdfe3089ae7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec67a5a0b10a3ad2bbfe81de832ef239"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#aec67a5a0b10a3ad2bbfe81de832ef239">led_off</a> (int led)</td></tr>
<tr class="memdesc:aec67a5a0b10a3ad2bbfe81de832ef239"><td class="mdescLeft">&#160;</td><td class="mdescRight">Turn off virtual LED.  <a href="#aec67a5a0b10a3ad2bbfe81de832ef239">More...</a><br /></td></tr>
<tr class="separator:aec67a5a0b10a3ad2bbfe81de832ef239"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac827567ee25b284c2992fed88249ab96"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#ac827567ee25b284c2992fed88249ab96">rwbuf_rinit</a> (<a class="el" href="structrwbuf__t.html">rwbuf_t</a> *p)</td></tr>
<tr class="memdesc:ac827567ee25b284c2992fed88249ab96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize socket read status and read index.  <a href="#ac827567ee25b284c2992fed88249ab96">More...</a><br /></td></tr>
<tr class="separator:ac827567ee25b284c2992fed88249ab96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a137266340baece84e055b2d49cd0c2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a6a137266340baece84e055b2d49cd0c2">rwbuf_winit</a> (<a class="el" href="structrwbuf__t.html">rwbuf_t</a> *p)</td></tr>
<tr class="memdesc:a6a137266340baece84e055b2d49cd0c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize socket send status and write index.  <a href="#a6a137266340baece84e055b2d49cd0c2">More...</a><br /></td></tr>
<tr class="separator:a6a137266340baece84e055b2d49cd0c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89dceabcd370d352c3efed0e689fd551"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a89dceabcd370d352c3efed0e689fd551">display_ipv4</a> (char *msg, <a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *ip, int port)</td></tr>
<tr class="memdesc:a89dceabcd370d352c3efed0e689fd551"><td class="mdescLeft">&#160;</td><td class="mdescRight">Display IPV4 address.  <a href="#a89dceabcd370d352c3efed0e689fd551">More...</a><br /></td></tr>
<tr class="separator:a89dceabcd370d352c3efed0e689fd551"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af089b318dcc1ebbec17ae7392a19e457"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#af089b318dcc1ebbec17ae7392a19e457">rwbuf_delete</a> (<a class="el" href="structrwbuf__t.html">rwbuf_t</a> *p)</td></tr>
<tr class="memdesc:af089b318dcc1ebbec17ae7392a19e457"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete socket read/write buffers.  <a href="#af089b318dcc1ebbec17ae7392a19e457">More...</a><br /></td></tr>
<tr class="separator:af089b318dcc1ebbec17ae7392a19e457"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0768c5077e8cfa177735808798193071"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> <a class="el" href="structrwbuf__t.html">rwbuf_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a0768c5077e8cfa177735808798193071">rwbuf_create</a> (void)</td></tr>
<tr class="memdesc:a0768c5077e8cfa177735808798193071"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create socket read/write buffer for a connection.  <a href="#a0768c5077e8cfa177735808798193071">More...</a><br /></td></tr>
<tr class="separator:a0768c5077e8cfa177735808798193071"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63cfcb009066f483330ec359b8493fbe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> <a class="el" href="structrwbuf__t.html">rwbuf_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a63cfcb009066f483330ec359b8493fbe">find_connection</a> (<a class="el" href="web_8h.html#a6dae30cd245bde804cf3e2c09e39a4b6">espconn_t</a> *conn, int *index, char *msg)</td></tr>
<tr class="memdesc:a63cfcb009066f483330ec359b8493fbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find a read/write socket buffer for an espconn connection.  <a href="#a63cfcb009066f483330ec359b8493fbe">More...</a><br /></td></tr>
<tr class="separator:a63cfcb009066f483330ec359b8493fbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef2853a921eb49702f064eaa925b16e1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> <a class="el" href="structrwbuf__t.html">rwbuf_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#aef2853a921eb49702f064eaa925b16e1">create_connection</a> (<a class="el" href="web_8h.html#a6dae30cd245bde804cf3e2c09e39a4b6">espconn_t</a> *conn)</td></tr>
<tr class="memdesc:aef2853a921eb49702f064eaa925b16e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate read/write socket buffers and add it to the working pool.  <a href="#aef2853a921eb49702f064eaa925b16e1">More...</a><br /></td></tr>
<tr class="separator:aef2853a921eb49702f064eaa925b16e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f82234178b3e152072e979c17b40af2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a7f82234178b3e152072e979c17b40af2">delete_connection</a> (<a class="el" href="structrwbuf__t.html">rwbuf_t</a> *p)</td></tr>
<tr class="memdesc:a7f82234178b3e152072e979c17b40af2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete our main connection structure and connection buffers.  <a href="#a7f82234178b3e152072e979c17b40af2">More...</a><br /></td></tr>
<tr class="separator:a7f82234178b3e152072e979c17b40af2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a751d54408d691ebc079108ffc42ee436"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a751d54408d691ebc079108ffc42ee436">write_len</a> (<a class="el" href="structrwbuf__t.html">rwbuf_t</a> *p, char *str, int len)</td></tr>
<tr class="memdesc:a751d54408d691ebc079108ffc42ee436"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write data using buffered write_byte function.  <a href="#a751d54408d691ebc079108ffc42ee436">More...</a><br /></td></tr>
<tr class="separator:a751d54408d691ebc079108ffc42ee436"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a5efc80e175181baf607f7f9a1358e5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a2a5efc80e175181baf607f7f9a1358e5">write_str</a> (<a class="el" href="structrwbuf__t.html">rwbuf_t</a> *p, char *str)</td></tr>
<tr class="memdesc:a2a5efc80e175181baf607f7f9a1358e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write string using buffered write_byte function.  <a href="#a2a5efc80e175181baf607f7f9a1358e5">More...</a><br /></td></tr>
<tr class="separator:a2a5efc80e175181baf607f7f9a1358e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a912affa80386fb06e19c3ce5342701f5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a912affa80386fb06e19c3ce5342701f5">vsock_printf</a> (<a class="el" href="structrwbuf__t.html">rwbuf_t</a> *p, const char *fmt, va_list va)</td></tr>
<tr class="memdesc:a912affa80386fb06e19c3ce5342701f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">vsock_printf function  <a href="#a912affa80386fb06e19c3ce5342701f5">More...</a><br /></td></tr>
<tr class="separator:a912affa80386fb06e19c3ce5342701f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38a7c7d1f5222edff77e9a7a20195696"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a38a7c7d1f5222edff77e9a7a20195696">sock_printf</a> (<a class="el" href="structrwbuf__t.html">rwbuf_t</a> *p, const char *fmt,...)</td></tr>
<tr class="memdesc:a38a7c7d1f5222edff77e9a7a20195696"><td class="mdescLeft">&#160;</td><td class="mdescRight">sock_printf function  <a href="#a38a7c7d1f5222edff77e9a7a20195696">More...</a><br /></td></tr>
<tr class="separator:a38a7c7d1f5222edff77e9a7a20195696"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cb82637d6d97812355aaa7a7fb4ccbe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a5cb82637d6d97812355aaa7a7fb4ccbe">html_msg</a> (<a class="el" href="structrwbuf__t.html">rwbuf_t</a> *p, int status, char type, char *fmt,...)</td></tr>
<tr class="memdesc:a5cb82637d6d97812355aaa7a7fb4ccbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send an HTML status message to socket.  <a href="#a5cb82637d6d97812355aaa7a7fb4ccbe">More...</a><br /></td></tr>
<tr class="separator:a5cb82637d6d97812355aaa7a7fb4ccbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ea8a8e37ac5c7099311e4d9cdb77efb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a2ea8a8e37ac5c7099311e4d9cdb77efb">meminit</a> (<a class="el" href="structmem__t.html">mem_t</a> *p, char *ptr, int size)</td></tr>
<tr class="memdesc:a2ea8a8e37ac5c7099311e4d9cdb77efb"><td class="mdescLeft">&#160;</td><td class="mdescRight">in memory memory gets function  <a href="#a2ea8a8e37ac5c7099311e4d9cdb77efb">More...</a><br /></td></tr>
<tr class="separator:a2ea8a8e37ac5c7099311e4d9cdb77efb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad834fe4d9506060f80d873fb20c186d5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#ad834fe4d9506060f80d873fb20c186d5">memgets</a> (<a class="el" href="structmem__t.html">mem_t</a> *p)</td></tr>
<tr class="memdesc:ad834fe4d9506060f80d873fb20c186d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Memory gets function We ASSUME we can replace any <br />
 with a \0.  <a href="#ad834fe4d9506060f80d873fb20c186d5">More...</a><br /></td></tr>
<tr class="separator:ad834fe4d9506060f80d873fb20c186d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae16ca93f35df1d6e5040aa464fec44ab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#ae16ca93f35df1d6e5040aa464fec44ab">mime_type</a> (int type)</td></tr>
<tr class="memdesc:ae16ca93f35df1d6e5040aa464fec44ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">return strung pointer for mime type index  <a href="#ae16ca93f35df1d6e5040aa464fec44ab">More...</a><br /></td></tr>
<tr class="separator:ae16ca93f35df1d6e5040aa464fec44ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec5e03bbb08e40de50b3da6413e26931"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#aec5e03bbb08e40de50b3da6413e26931">file_type</a> (char *name)</td></tr>
<tr class="memdesc:aec5e03bbb08e40de50b3da6413e26931"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determin mimetype using file name extension.  <a href="#aec5e03bbb08e40de50b3da6413e26931">More...</a><br /></td></tr>
<tr class="separator:aec5e03bbb08e40de50b3da6413e26931"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeebdbab253618d52a35054978fe4bb0e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#aeebdbab253618d52a35054978fe4bb0e">html_status</a> (int status)</td></tr>
<tr class="memdesc:aeebdbab253618d52a35054978fe4bb0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert html status into string using http_status table.  <a href="#aeebdbab253618d52a35054978fe4bb0e">More...</a><br /></td></tr>
<tr class="separator:aeebdbab253618d52a35054978fe4bb0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9022b922953aabe534b7b68e6f3a90af"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a9022b922953aabe534b7b68e6f3a90af">init_hinfo</a> (<a class="el" href="structhinfo__t.html">hinfo_t</a> *hi)</td></tr>
<tr class="separator:a9022b922953aabe534b7b68e6f3a90af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93274f0048175d7ed429598e951a2c77"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a93274f0048175d7ed429598e951a2c77">match_headers</a> (char *str, char **p)</td></tr>
<tr class="memdesc:a93274f0048175d7ed429598e951a2c77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Match GET/POST message headers.  <a href="#a93274f0048175d7ed429598e951a2c77">More...</a><br /></td></tr>
<tr class="separator:a93274f0048175d7ed429598e951a2c77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab29b4d9382acde5a32fa0aad1068c38b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#ab29b4d9382acde5a32fa0aad1068c38b">process_args</a> (<a class="el" href="structhinfo__t.html">hinfo_t</a> *hi, char *ptr)</td></tr>
<tr class="memdesc:ab29b4d9382acde5a32fa0aad1068c38b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process GET argments or POST message name/value data. HTML encoding is done in place often reducting the size of the result. Convert name=value pairs into null terminated strings. Names and values are each terminated with an EOS by replaceing '?', '&amp;', '=' characters seen while scaning.  <a href="#ab29b4d9382acde5a32fa0aad1068c38b">More...</a><br /></td></tr>
<tr class="separator:ab29b4d9382acde5a32fa0aad1068c38b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb148431af519ffd7c3191ed3edd4d50"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#afb148431af519ffd7c3191ed3edd4d50">first_arg</a> (<a class="el" href="structhinfo__t.html">hinfo_t</a> *hi)</td></tr>
<tr class="memdesc:afb148431af519ffd7c3191ed3edd4d50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find first POST/GET argument.  <a href="#afb148431af519ffd7c3191ed3edd4d50">More...</a><br /></td></tr>
<tr class="separator:afb148431af519ffd7c3191ed3edd4d50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2b1c83b2901da05a13fbc48e9c9f030"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#ac2b1c83b2901da05a13fbc48e9c9f030">next_arg</a> (<a class="el" href="structhinfo__t.html">hinfo_t</a> *hi)</td></tr>
<tr class="memdesc:ac2b1c83b2901da05a13fbc48e9c9f030"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find next POST/GET argument We have to skip a name and a value.  <a href="#ac2b1c83b2901da05a13fbc48e9c9f030">More...</a><br /></td></tr>
<tr class="separator:ac2b1c83b2901da05a13fbc48e9c9f030"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35cc0d5292df6d1df5cf3ea63e44d0b7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a35cc0d5292df6d1df5cf3ea63e44d0b7">arg_name</a> (<a class="el" href="structhinfo__t.html">hinfo_t</a> *hi)</td></tr>
<tr class="memdesc:a35cc0d5292df6d1df5cf3ea63e44d0b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the argument name for current argument.  <a href="#a35cc0d5292df6d1df5cf3ea63e44d0b7">More...</a><br /></td></tr>
<tr class="separator:a35cc0d5292df6d1df5cf3ea63e44d0b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12e823b35aaf4392e282d39057f45eb8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a12e823b35aaf4392e282d39057f45eb8">arg_value</a> (<a class="el" href="structhinfo__t.html">hinfo_t</a> *hi)</td></tr>
<tr class="memdesc:a12e823b35aaf4392e282d39057f45eb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the argument value for current argument.  <a href="#a12e823b35aaf4392e282d39057f45eb8">More...</a><br /></td></tr>
<tr class="separator:a12e823b35aaf4392e282d39057f45eb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a142e7c44af77016bb329676f4466da7e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a142e7c44af77016bb329676f4466da7e">http_value</a> (<a class="el" href="structhinfo__t.html">hinfo_t</a> *hi, char *str)</td></tr>
<tr class="memdesc:a142e7c44af77016bb329676f4466da7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lookup and argument name and return its value.  <a href="#a142e7c44af77016bb329676f4466da7e">More...</a><br /></td></tr>
<tr class="separator:a142e7c44af77016bb329676f4466da7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac0e14d0751e24b7143060600fe7822a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#aac0e14d0751e24b7143060600fe7822a">is_header</a> (char *str, char **p)</td></tr>
<tr class="memdesc:aac0e14d0751e24b7143060600fe7822a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does the string look like a header token with a ':' ?  <a href="#aac0e14d0751e24b7143060600fe7822a">More...</a><br /></td></tr>
<tr class="separator:aac0e14d0751e24b7143060600fe7822a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1723d513f866e03e8195adf0139b1603"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a1723d513f866e03e8195adf0139b1603">nextbreak</a> (char *ptr)</td></tr>
<tr class="memdesc:a1723d513f866e03e8195adf0139b1603"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find next space or ? character.  <a href="#a1723d513f866e03e8195adf0139b1603">More...</a><br /></td></tr>
<tr class="separator:a1723d513f866e03e8195adf0139b1603"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a099953c3f11ff53e89c99b0be5212b70"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a099953c3f11ff53e89c99b0be5212b70">u5toa</a> (char *ptr, <a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> num)</td></tr>
<tr class="memdesc:a099953c3f11ff53e89c99b0be5212b70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print a decimal number into a string without an EOS.  <a href="#a099953c3f11ff53e89c99b0be5212b70">More...</a><br /></td></tr>
<tr class="separator:a099953c3f11ff53e89c99b0be5212b70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfdd7b32cc9e6b5214ddbf8120a9ed7b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#acfdd7b32cc9e6b5214ddbf8120a9ed7b">html_head</a> (<a class="el" href="structrwbuf__t.html">rwbuf_t</a> *p, int status, char type, int len)</td></tr>
<tr class="memdesc:acfdd7b32cc9e6b5214ddbf8120a9ed7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write HTTP Contenet-Type/Content-Length header.  <a href="#acfdd7b32cc9e6b5214ddbf8120a9ed7b">More...</a><br /></td></tr>
<tr class="separator:acfdd7b32cc9e6b5214ddbf8120a9ed7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a574da7d2e02f16c3ff0727061b90c46c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a574da7d2e02f16c3ff0727061b90c46c">parse_http_request</a> (<a class="el" href="structrwbuf__t.html">rwbuf_t</a> *p, <a class="el" href="structhinfo__t.html">hinfo_t</a> *hi)</td></tr>
<tr class="memdesc:a574da7d2e02f16c3ff0727061b90c46c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get arguments for a GET or POST request.  <a href="#a574da7d2e02f16c3ff0727061b90c46c">More...</a><br /></td></tr>
<tr class="separator:a574da7d2e02f16c3ff0727061b90c46c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4abb48d4494fe24bdb3966a30a380f94"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a4abb48d4494fe24bdb3966a30a380f94">is_cgitoken_char</a> (int c)</td></tr>
<tr class="memdesc:a4abb48d4494fe24bdb3966a30a380f94"><td class="mdescLeft">&#160;</td><td class="mdescRight">test to see if a character is a valid member of the CGI token character set CGI tokens have the following syntax @ They start with "@_" and end with "_@" "@_" must be first two characters of string May have upper and lower case letters, numbers and '-'  <a href="#a4abb48d4494fe24bdb3966a30a380f94">More...</a><br /></td></tr>
<tr class="separator:a4abb48d4494fe24bdb3966a30a380f94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1923a5ddca00d254e13a605602f68972"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a1923a5ddca00d254e13a605602f68972">find_cgitoken_start</a> (char *str)</td></tr>
<tr class="memdesc:a1923a5ddca00d254e13a605602f68972"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find start of CGI token in a string CGI tokens have the following syntax @ They start with "@_" and end with "_@" "@_" must be first two characters of string May have upper and lower case letters, numbers and '-' param[in] *str: string to search.  <a href="#a1923a5ddca00d254e13a605602f68972">More...</a><br /></td></tr>
<tr class="separator:a1923a5ddca00d254e13a605602f68972"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a048ebac3422330a50ba449d817ff49d8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a048ebac3422330a50ba449d817ff49d8">is_cgitoken</a> (char *str)</td></tr>
<tr class="memdesc:a048ebac3422330a50ba449d817ff49d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does the string have a CGI TOKEN at the beginning ? CGI tokens have the following syntax @ They start with "@_" and end with "_@" "@_" must be first two characters of string May have upper and lower case letters, numbers and '-'.  <a href="#a048ebac3422330a50ba449d817ff49d8">More...</a><br /></td></tr>
<tr class="separator:a048ebac3422330a50ba449d817ff49d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfb5be0ab21dfe56bc934a8965154384"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#abfb5be0ab21dfe56bc934a8965154384">rewrite_cgi_token</a> (<a class="el" href="structrwbuf__t.html">rwbuf_t</a> *p, char *src)</td></tr>
<tr class="memdesc:abfb5be0ab21dfe56bc934a8965154384"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace CGI token with CGI result CGI tokens have the following syntax @ They start with "@_" and end with "_@" "@_" must be first two characters of string May have upper and lower case letters, numbers and '-'.  <a href="#abfb5be0ab21dfe56bc934a8965154384">More...</a><br /></td></tr>
<tr class="separator:abfb5be0ab21dfe56bc934a8965154384"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8914bb442212946291b6afbf4f3e728e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a8914bb442212946291b6afbf4f3e728e">web_task</a> (void)</td></tr>
<tr class="memdesc:a8914bb442212946291b6afbf4f3e728e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process ALL incoming HTTP requests.  <a href="#a8914bb442212946291b6afbf4f3e728e">More...</a><br /></td></tr>
<tr class="separator:a8914bb442212946291b6afbf4f3e728e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0981a27ccb83326c4e96a0859f6511b5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#a0981a27ccb83326c4e96a0859f6511b5">web_init_connections</a> (void)</td></tr>
<tr class="separator:a0981a27ccb83326c4e96a0859f6511b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7a1c2f567713688983ddecf9fa0d8d6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="web_8h.html#aa7a1c2f567713688983ddecf9fa0d8d6">web_init</a> (int port)</td></tr>
<tr class="memdesc:aa7a1c2f567713688983ddecf9fa0d8d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup WEB server and accept connections.  <a href="#aa7a1c2f567713688983ddecf9fa0d8d6">More...</a><br /></td></tr>
<tr class="separator:aa7a1c2f567713688983ddecf9fa0d8d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Small web server for esp8266. </p>
<dl class="section user"><dt>Copyright &copy; 2015 Mike Gore, GPL License</dt><dd></dd></dl>
<dl class="section user"><dt>You are free to use this code under the terms of GPL</dt><dd>please retain a copy of this notice in any code you use it in.</dd></dl>
<p>This is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.</p>
<p>This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.</p>
<p>You should have received a copy of the GNU General Public License along with this program. If not, see <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>. </p>

<p>Definition in file <a class="el" href="web_8h_source.html">web.h</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a51a214aeaf13aa7f3eac284e5a4fc93e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IO_MAX&#160;&#160;&#160;512</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="web_8h_source.html#l00065">65</a> of file <a class="el" href="web_8h_source.html">web.h</a>.</p>

</div>
</div>
<a class="anchor" id="a053b7859476cc9867ec62c49e68d3fa1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_CONNECTIONS&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="web_8h_source.html#l00031">31</a> of file <a class="el" href="web_8h_source.html">web.h</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l00669">create_connection()</a>, <a class="el" href="web_8c_source.html#l00715">delete_connection()</a>, <a class="el" href="web_8c_source.html#l00590">find_connection()</a>, <a class="el" href="user__main_8c_source.html#l00971">setup()</a>, and <a class="el" href="web_8c_source.html#l00400">tcp_accept()</a>.</p>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="a6dae30cd245bde804cf3e2c09e39a4b6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct espconn <a class="el" href="web_8h.html#a6dae30cd245bde804cf3e2c09e39a4b6">espconn_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="web_8h_source.html#l00027">27</a> of file <a class="el" href="web_8h_source.html">web.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">anonymous enum</td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04a6b4dfa1db88da421c74c30dc94c3ce53"></a>TOKEN_GET&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04a2a1292bc924f34d6d69a7b71501ae73f"></a>TOKEN_PUT&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04a4cb258960bebf97073876d09836f1618"></a>TOKEN_POST&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04a7a543c7cf1ac077230c499a41c3a8a94"></a>TOKEN_HEAD&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04a04d43499e4bc7c9f971f7a660d098ff1"></a>TOKEN_HOST&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04a4e115a8a34594af0f253e8472cffe673"></a>TOKEN_USER_AGENT&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04ae47eb1ae54089e857fd7795282a7ae1d"></a>TOKEN_HTTPS&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04a37110324f9064d3a7e41029d572141d0"></a>TOKEN_DNT&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04af8b41aa43b046daa7c0ada29d27b7cdb"></a>TOKEN_ACCEPT&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04a3fdcc37f74cb2179b65913891e1f02d8"></a>TOKEN_ACCEPT_LANGUAGE&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04add40d0810a662bffc6a5d437e2a86c10"></a>TOKEN_ACCEPT_ENCODING&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04ad862c732a351f70da32231c9f4298d05"></a>TOKEN_CONNECTION&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04ab9bf3f747c7169a74f228b4f173c2bf4"></a>TOKEN_REFERER&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04a727fe5423c611ba2fac22b301c60e962"></a>TOKEN_CONTENT_LENGTH&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04ad871a413f306c0544fd283658f046805"></a>TOKEN_CONTENT_TYPE&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="abc6126af1d45847bc59afa0aa3216b04a991253922f53b4456f895f846e82b946"></a>TOKEN_CACHE_CONTROL&#160;</td><td class="fielddoc">
</td></tr>
</table>

<p>Definition at line <a class="el" href="web_8h_source.html#l00068">68</a> of file <a class="el" href="web_8h_source.html">web.h</a>.</p>

</div>
</div>
<a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">anonymous enum</td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06ca7e4a42e3b6dd63708c64cf3db6f69566"></a>STATUS_OK&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06ca75c8bace79d5c58050c2d93fd9de3c00"></a>STATUS_CREATED&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06ca544ef68512445722eea8ab61cde6c830"></a>STATUS_ACCEPTED&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06ca71bad6dd3a7a5c8299f3e3c80b45dc14"></a>STATUS_NO_CONTENT&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06ca663e14e47f325e0a39cd97b9a3ea6fb9"></a>STATUS_MV_PERM&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06cad39f6bf4951a299bdb3ce9b8d26e253d"></a>STATUS_MV_TEMP&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06ca241c5e2099d4e3033fb286faab004c5c"></a>STATUS_NOT_MODIF&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06ca1879c295e29e4b52c2012c014cdc7f7a"></a>STATUS_BAD_REQ&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06cab798bc2adfffcedc038bc7147872dedc"></a>STATUS_UNAUTH&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06caf1a1b171197b10ee86c06ae98edbaf5e"></a>STATUS_FORBIDDEN&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06ca5beadd7da049edbb6bbe9a9d50973ac8"></a>STATUS_NOT_FOUND&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06caa4895f748a5cf4fbfc084fcc98bba90e"></a>STATUS_INT_SERR&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06ca70758246ac128854293bb3c9071a6b56"></a>STATUS_NOT_IMPL&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06ca11d58f99340eb2b9510382096f7019c5"></a>STATUS_BAD_GATEWAY&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="adc29c2ff13d900c2f185ee95427fb06ca5426ee498d80d1ca30f1b81f86c39c31"></a>STATUS_SERV_UNAVAIL&#160;</td><td class="fielddoc">
</td></tr>
</table>

<p>Definition at line <a class="el" href="web_8h_source.html#l00099">99</a> of file <a class="el" href="web_8h_source.html">web.h</a>.</p>

</div>
</div>
<a class="anchor" id="a61dadd085c1777f559549e05962b2c9e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">anonymous enum</td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea90b1e6aa374cea27cc6fb55c5feba5c6"></a>PTYPE_TEXT&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea4bd960e514f0585643742b8bd4b77f3b"></a>PTYPE_HTML&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea30057776e71c48725f93b464b45c9a21"></a>PTYPE_PDF&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea319eff9f0f2a8e6f74c5a319fc1cb4e4"></a>PTYPE_CSS&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea96590ec99e2f5ce52c16218c19441c77"></a>PTYPE_CGI&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea68ab53191252e14d5f4b4025b956cadf"></a>PTYPE_JS&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9eae0868088fd938478331ae365e481a2d3"></a>PTYPE_XML&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9eacbda84af249fa4ef414b6b5c32eec998"></a>PTYPE_ICO&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea30f126f9623d527070097095a12e69d6"></a>PTYPE_GIF&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9eaabae39c4d39e7574d9e0459d6ada9675"></a>PTYPE_JPEG&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9eae45f3c9fce9b5c96bf27fb291662b0cb"></a>PTYPE_MPEG&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9eafb13489a2aca6e1485d8f1b36aab9bd5"></a>PTYPE_FLASH&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a61dadd085c1777f559549e05962b2c9ea8a75b468753c30e47935e8db26c91680"></a>PTYPE_ERR&#160;</td><td class="fielddoc">
</td></tr>
</table>

<p>Definition at line <a class="el" href="web_8h_source.html#l00117">117</a> of file <a class="el" href="web_8h_source.html">web.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a35cc0d5292df6d1df5cf3ea63e44d0b7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char* arg_name </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhinfo__t.html">hinfo_t</a> *&#160;</td>
          <td class="paramname"><em>hi</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return the argument name for current argument. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*hi</td><td><a class="el" href="structhinfo__t.html">hinfo_t</a> structure with arguments </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>argument name </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l01298">1298</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l01422">http_value()</a>, and <a class="el" href="web_8c_source.html#l01535">parse_http_request()</a>.</p>

</div>
</div>
<a class="anchor" id="a12e823b35aaf4392e282d39057f45eb8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char* arg_value </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhinfo__t.html">hinfo_t</a> *&#160;</td>
          <td class="paramname"><em>hi</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return the argument value for current argument. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*hi</td><td><a class="el" href="structhinfo__t.html">hinfo_t</a> structure with arguments </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>argument value </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l01346">1346</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l01422">http_value()</a>, and <a class="el" href="web_8c_source.html#l01535">parse_http_request()</a>.</p>

</div>
</div>
<a class="anchor" id="aef2853a921eb49702f064eaa925b16e1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> <a class="el" href="structrwbuf__t.html">rwbuf_t</a>* create_connection </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="web_8h.html#a6dae30cd245bde804cf3e2c09e39a4b6">espconn_t</a> *&#160;</td>
          <td class="paramname"><em>conn</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Allocate read/write socket buffers and add it to the working pool. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">conn</td><td>espconn pointer for this connection </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structrwbuf__t.html">rwbuf_t</a> pointer to created structure </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00669">669</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l01928">web_data_connect_callback()</a>.</p>

</div>
</div>
<a class="anchor" id="a7f82234178b3e152072e979c17b40af2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int delete_connection </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structrwbuf__t.html">rwbuf_t</a> *&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Delete our main connection structure and connection buffers. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p</td><td><a class="el" href="structrwbuf__t.html">rwbuf_t</a> pointer </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00715">715</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l01854">web_data_disconnect_callback()</a>.</p>

</div>
</div>
<a class="anchor" id="a89dceabcd370d352c3efed0e689fd551"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void display_ipv4 </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *&#160;</td>
          <td class="paramname"><em>ip</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>port</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Display IPV4 address. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>user supplied message </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ip</td><td>IP address as uint8_t [4] </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>Port number </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00470">470</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l00715">delete_connection()</a>, <a class="el" href="web_8c_source.html#l00590">find_connection()</a>, <a class="el" href="web_8c_source.html#l01928">web_data_connect_callback()</a>, <a class="el" href="web_8c_source.html#l01854">web_data_disconnect_callback()</a>, <a class="el" href="web_8c_source.html#l01895">web_data_error_callback()</a>, <a class="el" href="web_8c_source.html#l01735">web_data_receive_callback()</a>, and <a class="el" href="web_8c_source.html#l01810">web_data_sent_callback()</a>.</p>

</div>
</div>
<a class="anchor" id="aec5e03bbb08e40de50b3da6413e26931"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int file_type </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Determin mimetype using file name extension. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*name</td><td>name to test </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>index into mimetype table </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00996">996</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

</div>
</div>
<a class="anchor" id="a1923a5ddca00d254e13a605602f68972"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int find_cgitoken_start </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find start of CGI token in a string CGI tokens have the following syntax @ They start with "@_" and end with "_@" "@_" must be first two characters of string May have upper and lower case letters, numbers and '-' param[in] *str: string to search. </p>
<dl class="section return"><dt>Returns</dt><dd>offset of start of token, or -1 if not found </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l02024">2024</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

</div>
</div>
<a class="anchor" id="a63cfcb009066f483330ec359b8493fbe"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> <a class="el" href="structrwbuf__t.html">rwbuf_t</a>* find_connection </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="web_8h.html#a6dae30cd245bde804cf3e2c09e39a4b6">espconn_t</a> *&#160;</td>
          <td class="paramname"><em>conn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>msg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find a read/write socket buffer for an espconn connection. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">conn</td><td>espconn pointer for this connection </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*index</td><td>return index into pool of <a class="el" href="structrwbuf__t.html">rwbuf_t</a> connections </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*msg</td><td>user debug message </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structrwbuf__t.html">rwbuf_t</a> pointer to found connection with *index set, or NULL with *index == -1 on failure </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00590">590</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l01854">web_data_disconnect_callback()</a>, <a class="el" href="web_8c_source.html#l01895">web_data_error_callback()</a>, <a class="el" href="web_8c_source.html#l01735">web_data_receive_callback()</a>, and <a class="el" href="web_8c_source.html#l01810">web_data_sent_callback()</a>.</p>

</div>
</div>
<a class="anchor" id="afb148431af519ffd7c3191ed3edd4d50"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char* first_arg </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhinfo__t.html">hinfo_t</a> *&#160;</td>
          <td class="paramname"><em>hi</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find first POST/GET argument. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*hi</td><td><a class="el" href="structhinfo__t.html">hinfo_t</a> structure with arguments </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>argument value pair </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l01235">1235</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l01422">http_value()</a>, and <a class="el" href="web_8c_source.html#l01535">parse_http_request()</a>.</p>

</div>
</div>
<a class="anchor" id="acfdd7b32cc9e6b5214ddbf8120a9ed7b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void html_head </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structrwbuf__t.html">rwbuf_t</a> *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write HTTP Contenet-Type/Content-Length header. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*p</td><td><a class="el" href="structrwbuf__t.html">rwbuf_t</a> pointer to socket buffer </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">status</td><td>html status message index </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>mimetype index </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td>length of message </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l01518">1518</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

</div>
</div>
<a class="anchor" id="a5cb82637d6d97812355aaa7a7fb4ccbe"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int html_msg </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structrwbuf__t.html">rwbuf_t</a> *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>fmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Send an HTML status message to socket. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>socket buffer structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">status</td><td>index into http_status table </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>mime type index </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fmt</td><td>printf format string </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">...</td><td>list of arguments </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>bytes written, 0 on wrror </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00853">853</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

</div>
</div>
<a class="anchor" id="aeebdbab253618d52a35054978fe4bb0e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char* html_status </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>status</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert html status into string using http_status table. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">status</td><td>html status number </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>http_status entry mathing status, or 500 Internal Server Error </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l01030">1030</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l01518">html_head()</a>, and <a class="el" href="web_8c_source.html#l00853">html_msg()</a>.</p>

</div>
</div>
<a class="anchor" id="a142e7c44af77016bb329676f4466da7e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char* http_value </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhinfo__t.html">hinfo_t</a> *&#160;</td>
          <td class="paramname"><em>hi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>str</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Lookup and argument name and return its value. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*hi</td><td><a class="el" href="structhinfo__t.html">hinfo_t</a> structure with arguments </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*str</td><td>string to lookup </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>argument value </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l01422">1422</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

</div>
</div>
<a class="anchor" id="a9022b922953aabe534b7b68e6f3a90af"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void init_hinfo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhinfo__t.html">hinfo_t</a> *&#160;</td>
          <td class="paramname"><em>hi</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Initilize <a class="el" href="structhinfo__t.html">hinfo_t</a> structure </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*hi</td><td><a class="el" href="structhinfo__t.html">hinfo_t</a> structure pointer to initialize </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structhinfo__t.html">hinfo_t</a> structure pointer to initialize </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l01055">1055</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l01535">parse_http_request()</a>.</p>

</div>
</div>
<a class="anchor" id="a048ebac3422330a50ba449d817ff49d8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int is_cgitoken </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Does the string have a CGI TOKEN at the beginning ? CGI tokens have the following syntax @ They start with "@_" and end with "_@" "@_" must be first two characters of string May have upper and lower case letters, numbers and '-'. </p>
<p>/** </p><dl class="section return"><dt>Returns</dt><dd>size of token or -1 on fail </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l02051">2051</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

</div>
</div>
<a class="anchor" id="a4abb48d4494fe24bdb3966a30a380f94"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int is_cgitoken_char </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>c</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>test to see if a character is a valid member of the CGI token character set CGI tokens have the following syntax @ They start with "@_" and end with "_@" "@_" must be first two characters of string May have upper and lower case letters, numbers and '-' </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>character to test </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if the character is a CGI token or 0 if not </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l01999">1999</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

</div>
</div>
<a class="anchor" id="aac0e14d0751e24b7143060600fe7822a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int is_header </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Does the string look like a header token with a ':' ? </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*str</td><td>string to test </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">**p</td><td>string pointer to set on match </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if it looks like a header, otherwise 0 </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l01451">1451</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l01535">parse_http_request()</a>.</p>

</div>
</div>
<a class="anchor" id="aec67a5a0b10a3ad2bbfe81de832ef239"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void led_off </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>led</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Turn off virtual LED. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">led</td><td>led to turn off </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00384">384</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

</div>
</div>
<a class="anchor" id="aaaac061db0c7646d5b6c8bdfe3089ae7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void led_on </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>led</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="web_8c_source.html#l00374">374</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

</div>
</div>
<a class="anchor" id="a93274f0048175d7ed429598e951a2c77"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int match_headers </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Match GET/POST message headers. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*str</td><td>string to patch </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">**p</td><td>points past matched string on sucess </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>header index or -1 on no match </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l01077">1077</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l01535">parse_http_request()</a>.</p>

</div>
</div>
<a class="anchor" id="ad834fe4d9506060f80d873fb20c186d5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char* memgets </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmem__t.html">mem_t</a> *&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Memory gets function We ASSUME we can replace any <br />
 with a \0. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>structure with size and offset used by mem_gets() </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to string </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00952">952</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l01535">parse_http_request()</a>.</p>

</div>
</div>
<a class="anchor" id="a2ea8a8e37ac5c7099311e4d9cdb77efb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char* meminit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmem__t.html">mem_t</a> *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>ptr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>in memory memory gets function </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>structure with size and offset used by mem_gets() </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>start of memory area </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>size of memory area </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to start of memory area (ptr) </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00933">933</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l01535">parse_http_request()</a>.</p>

</div>
</div>
<a class="anchor" id="ae16ca93f35df1d6e5040aa464fec44ab"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char* mime_type </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>return strung pointer for mime type index </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>index into mim_type table </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to string, if out of range uses index PTYPE_ERR </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00983">983</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l01518">html_head()</a>, and <a class="el" href="web_8c_source.html#l00853">html_msg()</a>.</p>

</div>
</div>
<a class="anchor" id="ac2b1c83b2901da05a13fbc48e9c9f030"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char* next_arg </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhinfo__t.html">hinfo_t</a> *&#160;</td>
          <td class="paramname"><em>hi</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find next POST/GET argument We have to skip a name and a value. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*hi</td><td><a class="el" href="structhinfo__t.html">hinfo_t</a> structure with arguments </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>argument value pair </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l01247">1247</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l01422">http_value()</a>, and <a class="el" href="web_8c_source.html#l01535">parse_http_request()</a>.</p>

</div>
</div>
<a class="anchor" id="a1723d513f866e03e8195adf0139b1603"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char* nextbreak </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>ptr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find next space or ? character. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*ptr</td><td>string to search </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>first space or ? character </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l01476">1476</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l01535">parse_http_request()</a>.</p>

</div>
</div>
<a class="anchor" id="a574da7d2e02f16c3ff0727061b90c46c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int parse_http_request </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structrwbuf__t.html">rwbuf_t</a> *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structhinfo__t.html">hinfo_t</a> *&#160;</td>
          <td class="paramname"><em>hi</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get arguments for a GET or POST request. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*p</td><td><a class="el" href="structrwbuf__t.html">rwbuf_t</a> pointer to socket buffer </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*hi</td><td>header structure of parsed result </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on error, 1 on success </dd></dl>
<p>We must respond with Connection: keep-alive now </p>

<p>Definition at line <a class="el" href="web_8c_source.html#l01535">1535</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

</div>
</div>
<a class="anchor" id="ab29b4d9382acde5a32fa0aad1068c38b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> char* process_args </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhinfo__t.html">hinfo_t</a> *&#160;</td>
          <td class="paramname"><em>hi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>ptr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Process GET argments or POST message name/value data. HTML encoding is done in place often reducting the size of the result. Convert name=value pairs into null terminated strings. Names and values are each terminated with an EOS by replaceing '?', '&amp;', '=' characters seen while scaning. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*hi</td><td><a class="el" href="structhinfo__t.html">hinfo_t</a> structure to fill </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*ptr</td><td>GET arguments or PUT message body. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>*ptr pointer that points to just past the header area. </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l01116">1116</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l01535">parse_http_request()</a>.</p>

</div>
</div>
<a class="anchor" id="abfb5be0ab21dfe56bc934a8965154384"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int rewrite_cgi_token </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structrwbuf__t.html">rwbuf_t</a> *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>src</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Replace CGI token with CGI result CGI tokens have the following syntax @ They start with "@_" and end with "_@" "@_" must be first two characters of string May have upper and lower case letters, numbers and '-'. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*p</td><td>socket stream </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*str</td><td>string with token, example @ </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>length of replaced text or 0 if no CGI handler was matched </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l02093">2093</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

</div>
</div>
<a class="anchor" id="a0768c5077e8cfa177735808798193071"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> <a class="el" href="structrwbuf__t.html">rwbuf_t</a>* rwbuf_create </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create socket read/write buffer for a connection. </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00526">526</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l00669">create_connection()</a>.</p>

</div>
</div>
<a class="anchor" id="af089b318dcc1ebbec17ae7392a19e457"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void rwbuf_delete </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structrwbuf__t.html">rwbuf_t</a> *&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Delete socket read/write buffers. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p</td><td><a class="el" href="structrwbuf__t.html">rwbuf_t</a> pointer to buffer to delete </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00487">487</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l00715">delete_connection()</a>, and <a class="el" href="web_8c_source.html#l00526">rwbuf_create()</a>.</p>

</div>
</div>
<a class="anchor" id="ac827567ee25b284c2992fed88249ab96"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void rwbuf_rinit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structrwbuf__t.html">rwbuf_t</a> *&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize socket read status and read index. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p</td><td><a class="el" href="structrwbuf__t.html">rwbuf_t</a> pointer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00439">439</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l00526">rwbuf_create()</a>, <a class="el" href="web_8c_source.html#l00487">rwbuf_delete()</a>, and <a class="el" href="web_8c_source.html#l01735">web_data_receive_callback()</a>.</p>

</div>
</div>
<a class="anchor" id="a6a137266340baece84e055b2d49cd0c2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void rwbuf_winit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structrwbuf__t.html">rwbuf_t</a> *&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize socket send status and write index. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p</td><td><a class="el" href="structrwbuf__t.html">rwbuf_t</a> pointer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00453">453</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l00526">rwbuf_create()</a>, <a class="el" href="web_8c_source.html#l00487">rwbuf_delete()</a>, and <a class="el" href="web_8c_source.html#l01810">web_data_sent_callback()</a>.</p>

</div>
</div>
<a class="anchor" id="a38a7c7d1f5222edff77e9a7a20195696"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int sock_printf </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structrwbuf__t.html">rwbuf_t</a> *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>sock_printf function </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>socket buffer structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fmt</td><td>printf format string </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">...</td><td>list of arguments </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>bytes written </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00830">830</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l01518">html_head()</a>.</p>

</div>
</div>
<a class="anchor" id="a099953c3f11ff53e89c99b0be5212b70"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void u5toa </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>ptr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>&#160;</td>
          <td class="paramname"><em>num</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Print a decimal number into a string without an EOS. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*ptr</td><td>buffer to write number to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">num</td><td>number to convet </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l01497">1497</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l00853">html_msg()</a>.</p>

</div>
</div>
<a class="anchor" id="a912affa80386fb06e19c3ce5342701f5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int vsock_printf </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structrwbuf__t.html">rwbuf_t</a> *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">va_list&#160;</td>
          <td class="paramname"><em>va</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>vsock_printf function </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>socket buffer structure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fmt</td><td>printf format string </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">va</td><td>va_list of arguments </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>bytes written </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00808">808</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l00830">sock_printf()</a>.</p>

</div>
</div>
<a class="anchor" id="a6b59ca0b6eea0b246eb56ae2b37ee2d8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int wait_send </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structrwbuf__t.html">rwbuf_t</a> *&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Wait for buffer to send for this connection If write_buffer sending flag is set then wait for it to clear. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*p</td><td><a class="el" href="structrwbuf__t.html">rwbuf_t</a> pointer for this socket buffer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>sent buffer size or -1 on error </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00195">195</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l00266">write_buffer()</a>, and <a class="el" href="web_8c_source.html#l00323">write_flush()</a>.</p>

</div>
</div>
<a class="anchor" id="aa7a1c2f567713688983ddecf9fa0d8d6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void web_init </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>port</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Setup WEB server and accept connections. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>port number to run web server on </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l02490">2490</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="user__main_8c_source.html#l00971">setup()</a>.</p>

</div>
</div>
<a class="anchor" id="a0981a27ccb83326c4e96a0859f6511b5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void web_init_connections </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="web_8c_source.html#l02475">2475</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

</div>
</div>
<a class="anchor" id="a32080fe9d866898d9fb3dce10079b1ff"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void web_sep </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>printer seperator </p>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00182">182</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l00400">tcp_accept()</a>.</p>

</div>
</div>
<a class="anchor" id="a8914bb442212946291b6afbf4f3e728e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void web_task </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Process ALL incoming HTTP requests. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="web_8c.html#a83e96b326e5d0ef41c95a83d510705dc" title="Process an incoming HTTP request. ">process_requests()</a> </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l02441">2441</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="user__task_8c_source.html#l00113">loop_wrapper()</a>.</p>

</div>
</div>
<a class="anchor" id="ab32eaeba7482e80dde268638c1514a6d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int write_buffer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structrwbuf__t.html">rwbuf_t</a> *&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Socket write buffer for this connection We wait for previous send to complete - then send any new data We do not wait for new data to finish sending - you use flush for that. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*p</td><td><a class="el" href="structrwbuf__t.html">rwbuf_t</a> pointer for this socket buffer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>size of data in buffer or -1 on error </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00266">266</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l00323">write_flush()</a>.</p>

</div>
</div>
<a class="anchor" id="a50c911d56af7c50bc045cffb983d76f0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int write_byte </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structrwbuf__t.html">rwbuf_t</a> *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write a byte (buffered) using the <a class="el" href="structrwbuf__t.html">rwbuf_t</a> socket buffers for this connection If the buffers are full the socket is written using write_flush. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*p</td><td><a class="el" href="structrwbuf__t.html">rwbuf_t</a> pointer for this socket buffer </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">1</td><td>on success 0 on fail </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00339">339</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l00790">_write_byte_fn()</a>, <a class="el" href="web_8c_source.html#l00758">write_len()</a>, and <a class="el" href="web_8c_source.html#l00774">write_str()</a>.</p>

</div>
</div>
<a class="anchor" id="a5e0970f0d980f87fb5524a757f96fa84"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> int write_flush </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structrwbuf__t.html">rwbuf_t</a> *&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write all outstanding data and wait for it to send. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*p</td><td><a class="el" href="structrwbuf__t.html">rwbuf_t</a> pointer for this socket buffer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00323">323</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l00339">write_byte()</a>.</p>

</div>
</div>
<a class="anchor" id="a751d54408d691ebc079108ffc42ee436"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void write_len </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structrwbuf__t.html">rwbuf_t</a> *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write data using buffered write_byte function. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*p</td><td><a class="el" href="structrwbuf__t.html">rwbuf_t</a> pointer for this socket buffer </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*str</td><td>data buffer to write </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td>number of bytes to write </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00758">758</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

<p>Referenced by <a class="el" href="web_8c_source.html#l00853">html_msg()</a>.</p>

</div>
</div>
<a class="anchor" id="a2a5efc80e175181baf607f7f9a1358e5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="earth2wireframe_8c.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a> void write_str </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structrwbuf__t.html">rwbuf_t</a> *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>str</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write string using buffered write_byte function. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">*p</td><td><a class="el" href="structrwbuf__t.html">rwbuf_t</a> pointer for this socket buffer </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*str</td><td>0 terminated string to write </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>

<p>Definition at line <a class="el" href="web_8c_source.html#l00774">774</a> of file <a class="el" href="web_8c_source.html">web.c</a>.</p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Jan 31 2018 21:22:17 for ESP8266 ILI9341 display support code with printf sources, wire-frame viewer and custom fonts by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>
